package token

import "context"

type Service interface {
	// 用户登陆时，颁发token
	Login(context.Context, *LoginRequest) (*Token, error)
	// 校验token（后面blog模块认证时会用到）
	ValiateToken(context.Context, *ValiateToken) (*Token, error)
	// 退出时，销毁token
	Logout(context.Context, *LogoutRequest) error
}

type LoginRequest struct {
	Username string
	Password string
}

func NewLoginRequest() *LoginRequest{
	return &LoginRequest{
	}
}

type ValiateToken struct  {
	AccessToken string `json:"access_token"`
}

func NewValiateToken() *ValiateToken{
	return &ValiateToken{
	}
}
type LogoutRequest struct {
	AccessToken string `json:"access_token"`
}

func NewLogoutRequest() *LogoutRequest{
	return &LogoutRequest{
	}
}